S05 T01 : Transformació Registre Log amb Regular expressions

Descripció

L'anàlisi de registres és una funció important per al control i l'alerta, el compliment de les polítiques de seguretat, l'auditoria i el compliment normatiu, la resposta a incidents de seguretat i fins i tot les investigacions forenses. En analitzar les dades de registre, les empreses poden identificar més fàcilment les possibles amenaces i altres problemes, trobar la causa arrel i iniciar una resposta ràpida per mitigar els riscos.

Nivell 1

L'analista ha d'assegurar-se que els registres consisteixen en una gamma completa de missatges i s'interpreten segons el context. Els elements de registre han de normalitzar-se, utilitzant els mateixos termes o terminologia, per evitar confusions i proporcionar cohesió.

Com Científic de Dades se t'ha proporcionat accés als registres-Logs on queda registrada l'activitat de totes les visites a realitzades a la pàgina web de l'agència de viatges "akumenius.com".

  1. Estudiant les dades que conté aquest fitxer, descobrim q es tracta d'un Apache HTTP server Log File. En aquest cas es tracta d'un Combined Log Format, amb un camp adicional VLOG, que no he sabut desxifrar.

exemple: www.akumenius.com 66.249.76.216 - - [23/Feb/2014:03:10:31 +0100] "GET /hoteles-baratos/ofertas-hotel-Club-&-Hotel-Letoonia--en-Fethiye-8460b-destinos.html HTTP/1.1" 404 3100 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" VLOG=-

Fem una ullada al que significa cada camp:
www.akumenius.com :url
66.249.76.216 : adrça IP del client (remote host)
- : espai reservat per la identitat del client, com no està disponible rebem un guionet.

- : espai reservat per la identitat del client un cop idenficcat . Si el document no està protegit amb contrasenya, ens apareix un guionet com es el nostre cas.

[23/Feb/2014:03:10:31 +0100] : és el camp de temps. Cal destacar que aquest format conté un últim camp de 4 digits precedit per un signe de suma o resta que ens indica la zona horària.

"GET (...)" : Linea de petició del client. Aquí ens mostra quin metode ha emprat el client, el mitjà i el seu protocol HTTP.

404 : Un número de 3 digits que ens dóna informació sobre el tipus de resultat que ha aconseguit el client, si ha tingut un resusltat satisfactori, si s'ha redireccionat o si per contra ha donat error.

3100: Un número que ens indica la mida de l'objecte retornat al client.

- : El següent camo és el Referer, que no està disponible.

i per últim,

"Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" : La capçalera del User-Agent , que ens serveix per identificar la informació que el cercador client ens ofereix d'ell mateix.

Un cop fet això, comencem a tractar les dades.

  1. Ens trobem q les dades estan separades de diferents maneres, algunes amb dobles cometes, d'altres amb claudators, per tal d'eliminar-les empraré RegEx.

Ara que ja tinc les dades endreçades i normalitzades

Abans d'afegir les dades de longitud, latitud i Pais que necesitarem més endevant, he de crear les columnes.Després de moltes proves he trobat que és la forma que em funciona

Una altre fet rellevant, la IP 127.0.0.1 que correspon al local host, dóna errades en el procésde geolocalització, per això he creat un nou DataFrame que no conté aquests valors.

Per tal de poder Geolocalitzar les IP obrirem la base de dades de mmdb i crearem el reader tal com ens recomanen. Mitjançant una funció lambda i el metode apply, executo els metodes reader.city().country.iso_code, reader.city().location.longitude, reader.city().location.latitude, que ens afegiran ala taula les dades que necessitem.

Aquest modul/database ens permet obtenir molta més informació, arribant fins al Codi Postal, però per aquest exercici no ens aporta valor.

Els dos proper moduls de codi donen error pq estic treballant amb un DtaFrame tallat d'un altre, però com ens dóna un bon resultat, de moment, ho deixaré així.

El següent pas, per poder visualitzar les dades, és importar les llibreries que ens permetran fer els gràficsi mapes.

amb GeoPandas, i la longitud i latitud generem la geometria necessària.

I finalment, gràcies a folium, n'obtenim un mapa ambm heatmap, que ens mostra la ubicació dels ip del log inicial.